const koa = require('koa')
const session = require('koa-session')

/*
    session和cookie一样，也是能够做到让不同的页面之间进行数据传递，hettp协议是一种误状态的协议
        session和cookie就是能够让服务器保持状态，他们的不同点在于，cookie是存储在浏览器端的，session是
        存在服务端的   session会比cookie更加的安全一些
    
    在nodejs种 session的存在时依赖于cookie的，当我们存了某个session的时候同样也会给浏览器传递cookie
        下次访问的时候服务端获取了这个cookie再和session进行比对，再返回出数据
*/ 

const get = require('./router/get')

const app = new koa()

app.keys = ['some secret']  

const config = {
    key: 'koa:sess',
    maxAge: 86400000,  //过期时间
    autoCommit: true, /** (boolean) automatically commit headers (default true) */
    overwrite: true, /** (boolean) can overwrite or not (default true) */
    httpOnly: true, /** 是否只有在服务器端可以获取 */
    signed: true, /** (boolean) signed or not (default true) 对cookie进行一次签名 */
    rolling: false, /** 每次访问都会重新的更新一次 */
    renew: false, /*在即将过期时会进行自动更新 */
    secure: false, /** 默认false*/
    sameSite: null, /** 默认 不需要修改 */
}

app.use(session(config, app))
app.use(get.routes())

app.listen(666, () => { 
    console.log('Server is running on port 666')
})